package org.yelongframework.excel.poi.cell;

import org.apache.poi.ss.usermodel.Cell;
import org.yelongframework.excel.cell.AbstractExcelCell;
import org.yelongframework.excel.poi.row.POIExcelRow;
import org.yelongframework.excel.poi.sheet.POIExcelSheet;
import org.yelongframework.excel.poi.workbook.POIExcelWorkbook;

/**
 * 抽象实现
 * 
 * @since 1.0.0
 */
public abstract class AbstractPOIExcelCell extends AbstractExcelCell implements POIExcelCell {

	// ==================================================构造器==================================================

	/**
	 * @param row  行
	 * @param cell 单元格
	 */
	public AbstractPOIExcelCell(POIExcelRow row, Cell cell) {
		super(row, cell);
	}

	// ==================================================索引==================================================

	@Override
	public int getRowIndex() {
		return getCell().getRowIndex();
	}

	@Override
	public int getColumnIndex() {
		return getCell().getColumnIndex();
	}

	// ==================================================获取字符串值==================================================

	@Override
	public String getValueString() {
		return getCellValueStringReader().apply(getCell());
	}

	// ==================================================所属的行==================================================

	@Override
	public POIExcelRow getRow() {
		return (POIExcelRow) super.getRow();
	}

	// ==================================================所属的工作表==================================================

	@Override
	public POIExcelSheet getSheet() {
		return getRow().getSheet();
	}

	// ==================================================所属的工作薄==================================================

	@Override
	public POIExcelWorkbook getWorkbook() {
		return getSheet().getWorkbook();
	}

	// ==================================================POI单元格==================================================

	@Override
	public Cell getCell() {
		return (Cell) super.getCell();
	}

}
